.inspire-tree {
    // Clearing selection after click events typically flashes
    // because the selection must complete first.
    // Disabling selection here so that it's easy to override...
    user-select: none;

    &:focus {
        outline: none;
    }

    /* ~~@@@~~~~~ Lists ~~~~~@@@~~ */
    ol {
        list-style: none;
        margin: 0;
        padding: 0;

        ol {
            margin-left: 20px;
        }
    }

    .collapsed > ol, .hidden {
        display: none;
    }

    a {
        cursor: default;
        display: block;
        height: 100%;
    }

    li > .title-wrap {
        position: relative;
        z-index: 2;
    }

    /* ~~@@@~~~~~ Node Content ~~~~~@@@~~ */
    .toggle {
        height: $tree-node-height;
        left: 0;
        position: absolute;
        top: 0;
        width: $tree-node-height;
        z-index: 2;

        &::before {
            display: block;
            left: 50%;
            position: absolute;
            top: 50%;
            transform: translate(-50%, -50%);
        }
    }

    [type="checkbox"] {
        left: 18px;
        position: absolute;
        top: 4px;
        vertical-align: middle;
        width: 20px;
        z-index: 2;
    }

    .title {
        line-height: $tree-node-height;
        overflow: hidden;
        padding-left: 30px;
        position: relative;
        text-overflow: ellipsis;
        vertical-align: middle;
        white-space: nowrap;
        z-index: 1;

        &::before {
            left: -5px;
            position: relative;
            top: -2px;
            vertical-align: middle;
        }
    }
}
